home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr13
/
microg1.zip
/
GOURMET.HI
< prev
next >
Wrap
Text File
|
1993-05-07
|
40KB
|
2,144 lines
*Release 1.10
SET TALK OFF
SET COLO OFF
SET BELL OFF
SET CONF ON
SET EJEC OFF
STOR ' ' TO PR
STOR 'Invalid Input' TO INV
STOR 'Press enter to continue ' TO PRC
IF .NOT.FILE("OPTION.MEM")
STOR 0 TO Z
STOR 80 TO NUMCOL
DO WHILE Z=0
ERAS
@ 11,0 SAY 'Enter the number of columns ' GET NUMCOL
@ 12,6 SAY 'on your terminal'
@ 13,4 SAY '(between 40 and 132)'
READ
IF NUMCOL<40.OR.NUMCOL>132
ERAS
@ 12,0 SAY INV
@ 13,0 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO Z
ENDI
ENDD
STOR (NUMCOL-52)/2 TO A
STOR 'GOURMET.PRG GOURMET.CMD GOURMET.DBF TYPE.NDX NUMBER.NDX SHOP.DBF ITEM.DBF ITEM.NDX ' TO FILES
STOR 'ABCDEFGHIJKLMNOP' TO AL
STOR 'GOURMET.PRG' TO GOURMET
STOR 'GOURMET.CMD' TO FGOURMET
STOR 'GOURMET.DBF' TO DGOURMET
STOR 'TYPE.NDX' TO TINDEX
STOR 'NUMBER.NDX' TO RINDEX
STOR 'SHOP.DBF' TO FSHOP
STOR 'ITEM.DBF' TO FITEM
STOR 'ITEM.NDX' TO NITEM
STOR 0 TO Z
STOR 2 TO ND
DO WHILE Z=0
ERAS
@ 6,A+6 SAY 'How many disk drives do you have? ' GET ND
@ 7,A+6 SAY ' (between 1 and 16)'
@ 8,A+6 SAY 'You can specify a number less than'
@ 9,A+6 SAY 'the actual number, if you want to'
@ 10,A+6 SAY 'search only one or two disk drives'
@ 12,A+6 SAY 'Be careful not to specify too big'
@ 13,A+6 SAY 'a number, because it may cause an'
@ 14,A+6 SAY "error that the program can't trap"
READ
IF ND<1.OR.ND>16
ERAS
@ 12,A+19 SAY INV
@ 13,A+14 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO Z
ENDI
ENDD
STOR 0 TO Z
STOR 'N' TO ANS
DO WHILE Z=0
ERAS
@ 12,A+6 SAY 'Do you want to change any files names? ' GET ANS
@ 13,A+6 SAY ' (Y or N)'
READ
IF !(ANS)<>'Y'.AND.!(ANS)<>'N'
ERAS
@ 12,A+19 SAY INV
@ 13,A+14 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO Z
ENDI
ENDD
IF !(ANS)='Y'
ERAS
@ 6,A+7 SAY 'Change any file names or press enter'
@ 7,A+7 SAY ' for any that will remain the same.'
@ 9,A+18 GET GOURMET
@ 10,A+18 GET DGOURMET
@ 11,A+18 GET TINDEX
@ 12,A+18 GET RINDEX
@ 13,A+18 GET FSHOP
@ 14,A+18 GET FITEM
@ 15,A+18 GET NITEM
READ
ENDI
STOR ' :'+GOURMET TO GOURMET
STOR ' :'+FGOURMET TO FGOURMET
STOR ' :'+DGOURMET TO DGOURMET
STOR ' :'+TINDEX TO TINDEX
STOR ' :'+RINDEX TO RINDEX
STOR ' :'+FSHOP TO FSHOP
STOR ' :'+FITEM TO FITEM
STOR ' :'+NITEM TO NITEM
STOR 0 TO Z
STOR ' ' TO ST
DO WHILE Z=0
ERAS
@ 3,A+8 SAY 'Now your disks will be searched for'
@ 4,A+8 SAY 'the location of all files, normally'
@ 5,A+8 SAY 'in ascending order for all drives.'
@ 6,A+8 SAY "If you don't want all of your disks"
@ 7,A+8 SAY "searched, or if you don't want to"
@ 8,A+8 SAY 'put a disk in each disk drive, then'
@ 9,A+8 SAY 'enter the letter of the disk drive'
@ 10,A+8 SAY 'to start with, or press enter to'
@ 11,A+8 SAY 'search them all.'
@ 13,A+26 GET ST
READ
STOR !(ST) TO ST
IF (ST<'A'.OR.ST>'P').AND.ST<>' '
ERAS
@ 12,A+19 SAY INV
@ 13,A+14 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO Z
ENDI
ENDD
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO NF
DO WHILE NF<=8
STOR 1 TO DCHK
STOR TRIM($(FILES,((NF-1)*12)+1,12)) TO FCHK
IF ST<>' '
STOR 1 TO J
DO WHILE J<=ND
IF ST=$(AL,J,1)
STOR J TO DCHK
STOR ND+1 TO J
LOOP
ELSE
STOR J+1 TO J
ENDI
ENDD
ENDI
DO WHILE DCHK<=ND
STOR $(AL,DCHK,1)+':'+FCHK TO WHERE
IF FILE(WHERE)
IF NF=1
STORE WHERE TO GOURMET
ENDI
IF NF=2
STORE WHERE TO GOURMET
ENDI
IF NF=3
STORE WHERE TO DGOURMET
ENDI
IF NF=4
STORE WHERE TO TINDEX
ENDI
IF NF=5
STORE WHERE TO RINDEX
ENDI
IF NF=6
STORE WHERE TO FSHOP
ENDI
IF NF=7
STORE WHERE TO FITEM
ENDI
IF NF=8
STORE WHERE TO NITEM
ENDI
ENDI
STOR DCHK+1 TO DCHK
ENDD
STOR NF+1 TO NF
ENDD
IF (GOURMET=' '.AND.FGOURMET=' ').OR.DGOURMET=' '.OR.TINDEX=' '.OR.RINDEX=' '.OR.FSHOP=' '.OR.FITEM=' '.OR.NITEM=' '
ERAS
STOR 4 TO ROW
@ 4,A+13 SAY 'Some file(s) could not be found'
@ 5,A+13 SAY ' Please check your disks'
STOR ROW+3 TO ROW
IF GOURMET=' '.AND.FGOURMET=' '
IF GOURMET=' '
@ ROW,A+20 SAY $(GOURMET,3,12)
STOR ROW+1 TO ROW
ENDI
IF FGOURMET=' '
@ ROW,A+20 SAY $(FGOURMET,3,12)
STOR ROW+1 TO ROW
ENDI
ENDI
IF DGOURMET=' '
@ ROW,A+20 SAY $(DGOURMET,3,12)
STOR ROW+1 TO ROW
ENDI
IF TINDEX=' '
@ ROW,A+20 SAY $(TINDEX,3,12)
STOR ROW+1 TO ROW
ENDI
IF RINDEX=' '
@ ROW,A+20 SAY $(RINDEX,3,12)
STOR ROW+1 TO ROW
ENDI
IF FSHOP=' '
@ ROW,A+20 SAY $(FSHOP,3,12)
STOR ROW+1 TO ROW
ENDI
IF FITEM=' '
@ ROW,A+20 SAY $(FITEM,3,12)
STOR ROW+1 TO ROW
ENDI
IF NITEM=' '
@ ROW,A+20 SAY $(NITEM,3,12)
STOR ROW+1 TO ROW
ENDI
QUIT
ENDI
RELE FILES,AL,FGOURMET,ND,Z,ANS,ROW,WHERE,FCHK,DCHK,ST
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
SAVE TO OPTION
ELSE
REST FROM OPTION
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
ENDI
STOR ' ' TO MESS
ERAS
@ 1,A+6 SAY '*************** NOTICE **************** '
@ 2,A+6 SAY 'If you have received this program from'
@ 3,A+6 SAY 'another user and find it of value, your'
@ 4,A+6 SAY ' $30 contribution will be appreciated. '
@ 6,A+6 SAY ' microGOURMET'
@ 7,A+6 SAY ' 6958 Hanover Parkway, Suite 301'
@ 8,A+6 SAY ' Greenbelt, MD 20770'
@ 10,A+6 SAY 'You are encouraged to copy this program'
@ 11,A+6 SAY ' as described below.'
@ 12,A+6 SAY 'Users of this program are granted a'
@ 13,A+6 SAY 'limited license to make copies of this'
@ 14,A+6 SAY 'program for trial use by others on a'
@ 15,A+6 say 'private non-commercial basis only. This'
@ 16,A+6 SAY 'limited license does not include ---'
@ 17,A+6 SAY '1. distributing this program with any'
@ 18,A+6 SAY ' other product'
@ 19,A+6 SAY '2. making the program available for any'
@ 20,A+6 SAY ' consideration except for a disk fee'
@ 21,A+6 SAY '3. distributing the program in modified'
@ 22,A+6 SAY ' form. Please cooperate.'
@ 23,A+6 SAY '****************************************'
@ 24,A+6 SAY ' Press enter to continue' GET MESS
READ
STOR 0 TO M1
STOR '1' TO M
STOR '1' TO D
STOR '1' TO FM
STOR '1' TO T
STOR ' Note: Category may be blank' TO CLB
STOR 'End of File' TO END
STOR 'End of Search' TO ENDS
STOR ' ' TO I1
STOR ' ' TO I2
STOR ' ' TO I3
STOR 'Select a number or ' TO SNC
STOR 'None found' TO NF
STOR 'Retrieve this recipe? (Y or N) ' TO WTE
STOR 'Add this recipe to shopping list? ' TO PRO
STOR 'N' TO SHOP
DO WHILE M1=0
STOR 0 TO M2
STOR 0 TO M3
STOR 0 TO M4
ERAS
@ 3,A+15 SAY 'microGOURMET Main Menu'
@ 5,A+15 SAY '1 Find Recipes'
@ 6,A+15 SAY '2 Prepare Shopping List'
@ 7,A+15 SAY '3 Perform Data Base Maintenance'
@ 8,A+15 SAY '4 Change to Another Recipe Disk'
@ 9,A+15 SAY '5 Exit to Operating System'
@ 10,A+15 SAY '6 Exit to dBASE II'
@ 12,A+10 SAY 'Enter the number of your choice ' GET M
@ 13,A+10 SAY ' or enter ? for help'
READ
IF (M<'1'.OR.M>'6').AND.M<>'?'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF M='4'
ERAS
USE
@ 12,A+9 SAY 'Change Disk(s), then Press enter' GET PR
READ
STOR ' ' TO PR
ERAS
@ 12,A+10 SAY 'This will work only with CP/M'
@ 18,0 SAY ' '
QUIT TO 'DBASE GOURMET'
ENDI
IF M='5'
ERAS
QUIT
ENDI
IF M='6'
ERAS
USE
SET TALK ON
SET COLO ON
SET BELL ON
SET CONF OFF
SET EJEC ON
RETU
ENDI
IF M='?'
ERAS
@ 1,A+6 SAY ' microGOURMET Help'
@ 2,A+6 SAY 'This is the main menu. The choices here'
@ 3,A+6 SAY 'are as follows:'
@ 5,A+6 SAY '1 - Display the menu of recipe retrieval'
@ 6,A+6 SAY ' options (more help is available)'
@ 8,A+6 SAY '2 - Build a shopping list while browsing'
@ 9,A+6 SAY ' through the data base. You must use'
@ 10,A+6 SAY ' this option before using option 1.'
@ 12,A+6 SAY '3 - Maintain recipe database and indices'
@ 14,A+6 SAY '4 - Restart the program with another'
@ 15,A+6 SAY ' program and/or recipe disk. (For'
@ 16,A+6 SAY ' dBASE II version 2.3 and CP/M only.)'
@ 18,A+6 SAY '5 - Exit the program and return to the'
@ 19,A+6 SAY ' operating system, for the > prompt.'
@ 21,A+6 SAY '6 - Exit the program and remain within'
@ 22,A+6 SAY ' dBASE II, for the . prompt.'
@ 23,A+6 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF M<>'2'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
ENDI
DO CASE
CASE M='2'
STOR '1' TO T
STOR 0 TO M9
DO WHILE M9=0
ERAS
@ 3,A+13 SAY 'microGOURMET Shopping List'
@ 5,A+18 SAY '1 Compile List'
@ 6,A+18 SAY '2 Print List'
@ 7,A+18 SAY '3 Display List'
@ 9,A+10 SAY 'Enter the number of your choice ' GET T
@ 10,A+10 SAY ' or enter ? for help'
@ 11,A+10 SAY ' or enter 0 for previous menu'
@ 14,A+10 SAY 'Shopping list option'
IF SHOP='Y'
@ 14,A+39 SAY 'On'
ELSE
@ 14,A+39 SAY 'Off'
ENDI
READ
IF (T<'0'.OR.T>'3').AND.T<>'?'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M9
LOOP
ENDI
IF T='?'
ERAS
@ 1,A+6 SAY ' microGOURMET Help'
@ 2,A+6 SAY 'This is the shopping list menu. Choices'
@ 3,A+6 SAY 'are as follows:'
@ 5,A+6 SAY '1 - Compile a shopping list of recipe'
@ 6,A+6 SAY ' ingredients while browsing through'
@ 7,A+6 SAY ' the data base. Recipes you select'
@ 8,A+6 SAY ' will be added to the list. You must'
@ 9,A+6 SAY ' use this option before option 1 on'
@ 10,A+6 SAY ' on the main menu.'
@ 12,A+6 SAY '2 - Print the list after compiling it.'
@ 14,A+6 SAY '3 - Display the list after compiling it.'
@ 16,A+6 SAY 'After printing or displaying the list,'
@ 17,A+6 SAY 'you may delete it if you have no further'
@ 18,A+6 SAY 'need for it. Be careful - you may run'
@ 19,A+6 SAY 'out of space on the disk if you build a'
@ 20,A+6 SAY 'a big list, or if you have limited disk'
@ 21,A+6 SAY 'capacity.'
@ 23,A+6 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='1'
STOR 'Y' TO SHOP
LOOP
ELSE
SELE SECO
STOR 0 TO I
IF T='2'
ERASE
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
SET PRINT ON
ENDI
GOTO TOP
DO WHILE .NOT.EOF
ERAS
IF T='2'
? '--------------------------------------'
ELSE
? ' '
ENDI
? 'Name-----',NAME
? ' '
? ITEM1
? ITEM2
? ITEM3
? ITEM4
? ITEM5
? ITEM6
? ITEM7
? ITEM8
? ITEM9
? ITEM10
? ITEM11
? ITEM12
? ITEM13
? ITEM14
? ITEM15
SKIP
STOR I+18 TO I
IF T='3'
@ 22,0 SAY PRC GET PR
READ
STOR ' ' TO PR
ELSE
IF I>53
EJEC
ERAS
IF .NOT.EOF
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
ENDI
STOR 0 TO I
ENDI
ENDI
ENDD
IF I>0
EJEC
ENDI
SET PRINT OFF
ERAS
STOR 'Y' TO PR
@ 12,A+12 SAY 'Delete Shopping List File? ' GET PR
READ
ERAS
ERAS
@ 12,A+16 SAY 'One Moment Please...'
IF !(PR)='Y'
STOR 'N' TO SHOP
USE
USE &FSHOP
COPY STRU TO &FTEMP
USE &FTEMP
DELETE FILE &FSHOP
USE
RENA &FTEMP TO &FSHOP
*ACCOMMODATES DBASE BUG
USE
USE
USE
USE
USE
USE
USE
USE
USE
USE
ENDI
STOR ' ' TO PR
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
ENDI
ENDD
CASE M='1'
STOR 0 TO M2
DO WHILE M2=0
ERAS
@ 3,A+8 SAY 'microGOURMET Recipe Retrieval Menu'
@ 5,A+13 SAY 'Find Recipes by:'
@ 7,A+13 SAY '1 Category'
@ 8,A+13 SAY '2 Category & Name'
@ 9,A+13 SAY '3 Category & Ingredients'
@ 10,A+13 SAY '4 Category & Preparation Time'
@ 12,A+10 SAY 'Enter the number of your choice ' GET D
@ 13,A+10 SAY ' or enter ? for help'
@ 14,A+10 SAY ' or enter 0 for previous menu'
READ
IF (D<'0'.OR.D>'4').AND.D<>'?'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF D='?'
ERAS
@ 1,A+6 SAY ' microGOURMET Help'
@ 2,A+6 SAY 'This is the menu for recipe retrieval.'
@ 3,A+6 SAY 'Your choices are as follows: (see NOTE)'
@ 5,A+6 SAY '1 - Category retrieval only. You will'
@ 6,A+6 SAY ' pick a category by number and the'
@ 7,A+6 SAY ' text of recipe(s) will be retrieved.'
@ 8,A+6 SAY ' This continues until you stop it.'
@ 10,A+6 SAY '2 - Category and name retrieval. Only'
@ 11,A+6 SAY ' the recipe names and numbers will'
@ 12,A+6 SAY ' be displayed. You pick one to be'
@ 13,A+6 SAY ' be retrieved. (Faster than option 1)'
@ 15,A+6 SAY '3 - Category and ingedient retrieval. In'
@ 16,A+6 SAY ' addition to category, you may enter'
@ 17,A+6 SAY ' one to three ingredients. Recipe(s)'
@ 18,A+6 SAY ' which match will be retrieved.'
@ 21,A+6 SAY '<<<more on next page>>>'
@ 22,A+6 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
@ 1,A+6 SAY ' microGOURMET Help'
@ 3,A+6 SAY '4 - Category and preparation time'
@ 4,A+6 SAY ' retrieval. Recipes whose prep time'
@ 5,A+6 SAY ' (start to finish) is less than or'
@ 6,A+6 SAY ' equal to the number of minutes you'
@ 7,A+6 SAY ' enter will be retrieved.'
@ 9,A+6 SAY 'NOTE - After you pick a number on this'
@ 10,A+6 SAY 'menu, you will have a choice of printing'
@ 11,A+6 SAY 'or displaying recipe text (only). All'
@ 12,A+6 SAY 'menus which appear next will list the'
@ 13,A+6 SAY 'recipe categories.'
@ 15,A+6 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF D='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M2
LOOP
ENDI
STOR 'D' TO O
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+17 SAY 'Display or Print ' GET O
@ 13,A+17 SAY 'Selected Recipes?'
@ 14,A+17 SAY ' (D or P)'
READ
STOR !(O) TO O
IF O='D'.OR.O='P'
STOR 1 TO O1
LOOP
ELSE
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
ENDD
ERAS
@ 12,A+16 SAY 'One Moment Please...'
IF D='1'
STOR 0 TO M3
DO WHILE M3=0
ERAS
@ 1,A+10 SAY ' Recipe Selection by Category'
@ 3,A+10 SAY 'microGOURMET Recipe Categories'
@ 5,A+18 SAY '1 Appetizers'
@ 6,A+18 SAY '2 Salads'
@ 7,A+18 SAY '3 Main Dishes'
@ 8,A+18 SAY '4 Vegetable Dishes'
@ 9,A+18 SAY '5 Breads'
@ 10,A+18 SAY '6 Desserts'
@ 11,A+18 SAY '7 Cookies'
@ 13,A+10 SAY 'Enter the number of your choice ' GET T
@ 14,A+10 SAY ' or enter 0 for previous menu'
@ 16,A+10 SAY CLB
READ
IF (T<'0'.OR.T>'7').AND.T<>' '
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M3
LOOP
ENDI
IF T<>' '
FIND &T
STOR ' ' TO K
IF #=0
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
READ
STOR ' ' TO K
LOOP
ENDI
ELSE
GOTO TOP
ENDI
STOR 'Y' TO C
DO WHILE !(C)='Y'
IF .NOT.EOF
STOR 'Y' TO PRA
ERAS
IF !(O) = 'D'
SET FORM TO SCRE
STOR -23 TO F
ELSE
STOR ' ' TO PR
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
STOR 0 TO F
SET FORM TO PRIN
ENDI
@ 0,0 SAY 'Record #'
@ 0,10 SAY #
@ 1,0 SAY 'Category'
IF TYPE = 1
@ 1,10 SAY '1 Appetizers'
ENDI
IF TYPE = 2
@ 1,10 SAY '2 Salads'
ENDI
IF TYPE = 3
@ 1,10 SAY '3 Main Dishes'
ENDI
IF TYPE = 4
@ 1,10 SAY '4 Vegetable Dishes'
ENDI
IF TYPE = 5
@ 1,10 SAY '5 Breads'
ENDI
IF TYPE = 6
@ 1,10 SAY '6 Desserts'
ENDI
IF TYPE = 7
@ 1,10 SAY '7 Cookies'
ENDI
@ 2,0 SAY 'Name'
@ 2,10 SAY NAME
@ 3,0 SAY 'Remarks'
@ 3,10 SAY REMARKS
@ 5,0 SAY 'Ingredients'
@ 7,A+6 SAY ITEM1
@ 8,A+6 SAY ITEM2
@ 9,A+6 SAY ITEM3
@ 10,A+6 SAY ITEM4
@ 11,A+6 SAY ITEM5
@ 12,A+6 SAY ITEM6
@ 13,A+6 SAY ITEM7
@ 14,A+6 SAY ITEM8
@ 15,A+6 SAY ITEM9
@ 16,A+6 SAY ITEM10
@ 17,A+6 SAY ITEM11
@ 18,A+6 SAY ITEM12
@ 19,A+6 SAY ITEM13
@ 20,A+6 SAY ITEM14
@ 21,A+6 SAY ITEM15
IF !(O)='D'
@ 23,0 SAY PRC GET PR
READ
ERAS
ENDI
@ F+23,0 SAY 'Instructions'
@ F+25,A+6 SAY INSTRUCT1
@ F+26,A+6 SAY INSTRUCT2
@ F+27,A+6 SAY INSTRUCT3
@ F+28,A+6 SAY INSTRUCT4
@ F+29,A+6 SAY INSTRUCT5
@ F+30,A+6 SAY INSTRUCT6
@ F+31,A+6 SAY INSTRUCT7
@ F+32,A+6 SAY INSTRUCT8
@ F+33,A+6 SAY INSTRUCT9
@ F+34,A+6 SAY INSTRUCT10
@ F+36,0 SAY 'Preparation Time'
@ F+37,0 SAY '(Minutes)'
@ F+37,11 SAY PREPTIME
@ F+39,0 SAY 'Serving Hints'
@ F+40,A+6 SAY HINT1
@ F+41,A+6 SAY HINT2
IF !(O)='D'
IF SHOP='Y'
@ 23,0 SAY PRO GET PRA
ELSE
@ 23,0 SAY PRC GET PR
ENDI
READ
STOR ' ' TO PR
ENDI
IF !(O)='P'
EJECT
SET FORM TO SCRE
IF SHOP='Y'
ERAS
@ 12,A+9 SAY PRO GET PRA
READ
ENDI
ENDI
ERAS
IF !(SHOP)='Y'.AND.!(PRA)='Y'
SELE SECO
APPE BLANK
REPL S.NAME WITH P.NAME
REPL S.ITEM1 WITH P.ITEM1
REPL S.ITEM2 WITH P.ITEM2
REPL S.ITEM3 WITH P.ITEM3
REPL S.ITEM4 WITH P.ITEM4
REPL S.ITEM5 WITH P.ITEM5
REPL S.ITEM6 WITH P.ITEM6
REPL S.ITEM7 WITH P.ITEM7
REPL S.ITEM8 WITH P.ITEM8
REPL S.ITEM9 WITH P.ITEM9
REPL S.ITEM10 WITH P.ITEM10
REPL S.ITEM11 WITH P.ITEM11
REPL S.ITEM12 WITH P.ITEM12
REPL S.ITEM13 WITH P.ITEM13
REPL S.ITEM14 WITH P.ITEM14
REPL S.ITEM15 WITH P.ITEM15
SELE PRIM
ENDI
ENDI
SKIP
IF T<>' '
IF TYPE<>VAL(T).OR.EOF
ERAS
@ 12,A+13 SAY ENDS
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
STOR 'N' TO C
LOOP
ENDI
ELSE
IF EOF
ERAS
@ 12,A+13 SAY END
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
STOR 'N' TO C
LOOP
ENDI
ENDI
STOR 'Y' TO CS
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND.!(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
LOOP
ELSE
STOR 1 TO O1
LOOP
ENDI
ENDD
IF !(CS)='N'
STOR 'N' TO C
ENDI
ENDD
ENDD
ENDI
IF D='2'
STOR 0 TO M5
DO WHILE M5=0
ERAS
@ 1,A+8 SAY 'Recipe Selection by Category & Name'
@ 3,A+10 SAY 'microGOURMET Recipe Categories'
@ 5,A+18 SAY '1 Appetizers'
@ 6,A+18 SAY '2 Salads'
@ 7,A+18 SAY '3 Main Dishes'
@ 8,A+18 SAY '4 Vegetable Dishes'
@ 9,A+18 SAY '5 Breads'
@ 10,A+18 SAY '6 Desserts'
@ 11,A+18 SAY '7 Cookies'
@ 13,A+10 SAY 'Enter the number of your choice ' GET T
@ 14,A+10 SAY ' or enter 0 for previous menu'
@ 17,A+10 SAY CLB
READ
IF (T<'0'.OR.T>'7').AND.T<>' '
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M5
LOOP
ENDI
STOR 0 TO HIT
ERAS
STOR 'Y' TO C
IF T<>' '
FIND &T
STOR ' ' TO K
IF #=0
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
READ
STOR ' ' TO K
LOOP
ENDI
ELSE
GOTO TOP
ENDI
DO WHILE !(C)='Y'
STOR 1 TO I
DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
? STR(#,3),NAME
STOR 1 TO HIT
SKIP
STOR I+1 TO I
ENDD
STOR 1 TO I
STOR 0 TO K1
IF T<>' '.AND.TYPE<>VAL(T).AND.HIT=0
ERAS
@ 12,A+13 SAY ENDS
@ 13,A+13 SAY PRC GET PR
READ
STOR 'N' TO C
STOR ' ' TO PR
ERAS
ELSE
IF HIT=1
@ 22,0 SAY SNC GET K1
@ 23,0 SAY PRC
ELSE
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
ENDI
READ
IF K1=0
IF HIT=1
ERAS
STOR 'Y' TO CS
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND !(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
LOOP
ELSE
STOR 1 TO O1
ENDI
ENDD
IF !(CS)='N'
STOR 'N' TO C
ENDI
ENDI
ELSE
SET INDEX TO &RINDEX
STOR 0 TO Z
DO WHILE Z=0
STOR STR(K1,5) TO K2
FIND &K2
IF #=0
@ 21,0 SAY 'Recipe Not Found'
@ 22,0 SAY 'Select a number ' GET K1
@ 23,0 SAY ' '
READ
LOOP
ELSE
STOR 1 TO Z
LOOP
ENDI
ENDD
STOR 'Y' TO PRA
ERAS
IF !(O) = 'D'
SET FORM TO SCRE
STOR -23 TO F
ELSE
STOR ' ' TO PR
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
STOR 0 TO F
SET FORM TO PRIN
ENDI
@ 0,0 SAY 'Record #'
@ 0,10 SAY #
@ 1,0 SAY 'Category'
IF TYPE = 1
@ 1,10 SAY '1 Appetizers'
ENDI
IF TYPE = 2
@ 1,10 SAY '2 Salads'
ENDI
IF TYPE = 3
@ 1,10 SAY '3 Main Dishes'
ENDI
IF TYPE = 4
@ 1,10 SAY '4 Vegetable Dishes'
ENDI
IF TYPE = 5
@ 1,10 SAY '5 Breads'
ENDI
IF TYPE = 6
@ 1,10 SAY '6 Desserts'
ENDI
IF TYPE = 7
@ 1,10 SAY '7 Cookies'
ENDI
@ 2,0 SAY 'Name'
@ 2,10 SAY NAME
@ 3,0 SAY 'Remarks'
@ 3,10 SAY REMARKS
@ 5,0 SAY 'Ingredients'
@ 7,A+6 SAY ITEM1
@ 8,A+6 SAY ITEM2
@ 9,A+6 SAY ITEM3
@ 10,A+6 SAY ITEM4
@ 11,A+6 SAY ITEM5
@ 12,A+6 SAY ITEM6
@ 13,A+6 SAY ITEM7
@ 14,A+6 SAY ITEM8
@ 15,A+6 SAY ITEM9
@ 16,A+6 SAY ITEM10
@ 17,A+6 SAY ITEM11
@ 18,A+6 SAY ITEM12
@ 19,A+6 SAY ITEM13
@ 20,A+6 SAY ITEM14
@ 21,A+6 SAY ITEM15
IF !(O)='D'
@ 23,0 SAY PRC GET PR
READ
ERAS
ENDI
@ F+23,0 SAY 'Instructions'
@ F+25,A+6 SAY INSTRUCT1
@ F+26,A+6 SAY INSTRUCT2
@ F+27,A+6 SAY INSTRUCT3
@ F+28,A+6 SAY INSTRUCT4
@ F+29,A+6 SAY INSTRUCT5
@ F+30,A+6 SAY INSTRUCT6
@ F+31,A+6 SAY INSTRUCT7
@ F+32,A+6 SAY INSTRUCT8
@ F+33,A+6 SAY INSTRUCT9
@ F+34,A+6 SAY INSTRUCT10
@ F+36,0 SAY 'Preparation Time'
@ F+37,0 SAY '(Minutes)'
@ F+37,11 SAY PREPTIME
@ F+39,0 SAY 'Serving Hints'
@ F+40,A+6 SAY HINT1
@ F+41,A+6 SAY HINT2
IF !(O)='D'
IF SHOP='Y'
@ 23,0 SAY PRO GET PRA
ELSE
@ 23,0 SAY PRC GET PR
ENDI
READ
STOR ' ' TO PR
ENDI
IF !(O)='P'
EJECT
SET FORM TO SCRE
IF SHOP='Y'
ERAS
@ 12,A+9 SAY PRO GET PRA
READ
ENDI
ENDI
ERAS
IF !(SHOP)='Y'.AND.!(PRA)='Y'
SELE SECO
APPE BLANK
REPL S.NAME WITH P.NAME
REPL S.ITEM1 WITH P.ITEM1
REPL S.ITEM2 WITH P.ITEM2
REPL S.ITEM3 WITH P.ITEM3
REPL S.ITEM4 WITH P.ITEM4
REPL S.ITEM5 WITH P.ITEM5
REPL S.ITEM6 WITH P.ITEM6
REPL S.ITEM7 WITH P.ITEM7
REPL S.ITEM8 WITH P.ITEM8
REPL S.ITEM9 WITH P.ITEM9
REPL S.ITEM10 WITH P.ITEM10
REPL S.ITEM11 WITH P.ITEM11
REPL S.ITEM12 WITH P.ITEM12
REPL S.ITEM13 WITH P.ITEM13
REPL S.ITEM14 WITH P.ITEM14
REPL S.ITEM15 WITH P.ITEM15
SELE PRIM
ENDI
SET INDEX TO &TINDEX
STOR 'Y' TO CS
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND !(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
LOOP
ELSE
STOR 1 TO O1
LOOP
ENDI
ENDD
IF !(CS)='N'
STOR 'N' TO C
ELSE
IF T<>' '
FIND &T
ELSE
GOTO TOP
ENDI
ENDI
ENDI
IF EOF.AND.HIT=1
ERAS
@ 12,A+13 SAY END
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
STOR 'N' TO C
STOR '0' TO T
ENDI
IF HIT=0
STOR 'N' TO C
ENDI
STOR 0 TO HIT
ENDI
ENDD
ENDD
ENDI
IF D='3'
STOR 0 TO M6
DO WHILE M6=0
ERAS
@ 1,A+16 SAY 'Recipe Selection by'
@ 2,A+14 SAY 'Category & Ingredients'
@ 4,A+10 SAY 'microGOURMET Recipe Categories'
@ 6,A+18 SAY '1 Appetizers'
@ 7,A+18 SAY '2 Salads'
@ 8,A+18 SAY '3 Main Dishes'
@ 9,A+18 SAY '4 Vegetable Dishes'
@ 10,A+18 SAY '5 Breads'
@ 11,A+18 SAY '6 Desserts'
@ 12,A+18 SAY '7 Cookies'
@ 14,A+10 SAY 'Enter the number of your choice ' GET T
@ 15,A+10 SAY ' or enter 0 for previous menu'
@ 18,A+10 SAY CLB
READ
IF (T<'0'.OR.T>'7').AND.T<>' '
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M6
LOOP
ENDI
IF T<>' '
FIND &T
STOR ' ' TO K
IF #=0
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
READ
STOR ' ' TO K
LOOP
ENDI
ELSE
GOTO TOP
ENDI
STOR 'O' TO K
DO WHILE K='O'
ERAS
STOR 'Y' TO PRI
@ 12,A+10 SAY 'Display Ingredients? (Y or N) ' GET PRI
READ
IF !(PRI)<>'Y'.AND.!(PRI)<>'N'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ELSE
STOR 'K' TO K
ENDI
ENDD
IF !(PRI)='Y'
USE &FITEM INDEX &NITEM
STOR 0 TO Z
STOR 25 TO COLLEN
DO WHILE .NOT.EOF.AND.Z=0
STOR 1 TO PT
ERAS
DO WHILE PT<21
STOR 0 TO COL
DO WHILE COL<(NUMCOL-COLLEN)
IF .NOT.EOF
@ PT,COL SAY ITEM
SKIP
ELSE
STOR 21 TO PT
STOR 133 TO COL
LOOP
ENDI
STOR COL+COLLEN TO COL
ENDD
STOR PT+1 TO PT
ENDD
@ 22,0 SAY 'Press enter to continue ' GET PR
@ 23,0 SAY ' or enter Q to stop'
READ
IF !(PR)='Q'
STOR 1 TO Z
ENDI
STOR ' ' TO PR
ENDD
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
IF T<>' '
FIND &T
ENDI
ENDI
ERAS
@ 8,A+13 SAY 'Enter 1 to 3 Ingredients'
@ 10,0 SAY 'First? ' GET I1
@ 14,A+12 SAY 'To return to previous menu'
@ 15,A+13 SAY 'blank the 1st ingredient'
READ
IF I1=' '
LOOP
ENDI
@ 11,0 SAY 'Second? ' GET I2
READ
@ 12,0 SAY 'Third? ' GET I3
READ
ERAS
STOR 0 TO HIT
ERAS
STOR 'Y' TO C
DO WHILE !(C)='Y'
STOR 1 TO I
DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
@ 7,A+11 SAY 'This may take several minutes,'
@ 8,A+11 SAY ' depending on the number of'
@ 9,A+11 SAY ' ingredients entered'
@ 12,A+11 SAY ' Searching ...'
STOR 0 TO OK
STOR 0 TO F1
STOR 0 TO F2
STOR 0 TO F3
STOR !(TRIM(I1)) TO VAR
STOR 0 TO OK
IF !(ITEM1)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM2)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM3)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM4)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM5)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM6)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM7)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM8)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM9)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM10)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM11)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM12)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM13)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM14)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM15)=VAR
STOR 1 TO OK
ENDI
STOR OK TO F1
IF $(I2,1,1)=' '
STOR 1 TO F2
ELSE
STOR !(TRIM(I2)) TO VAR
STOR 0 TO OK
IF !(ITEM1)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM2)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM3)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM4)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM5)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM6)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM7)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM8)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM9)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM10)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM11)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM12)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM13)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM14)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM15)=VAR
STOR 1 TO OK
ENDI
STOR OK TO F2
ENDI
IF $(I3,1,1)=' '
STOR 1 TO F3
ELSE
STOR !(TRIM(I3)) TO VAR
STOR 0 TO OK
IF !(ITEM1)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM2)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM3)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM4)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM5)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM6)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM7)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM8)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM9)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM10)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM11)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM12)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM13)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM14)=VAR
STOR 1 TO OK
ENDI
IF !(ITEM15)=VAR
STOR 1 TO OK
ENDI
STOR OK TO F3
ENDI
IF F1=1.AND.F2=1.AND.F3=1
ERAS
? STR(#,3),NAME
STOR 1 TO HIT
STOR 'Y' TO Q
STOR 0 TO O1
DO WHILE O1=0
@ 22,0 SAY WTE GET Q
READ
IF !(Q)<>'Y'.AND.!(Q)<>'N'
@ 23,0 SAY INV
LOOP
ELSE
STOR 1 TO O1
ENDI
ENDD
IF !(Q)='Y'
STOR 'Y' TO PRA
ERAS
IF !(O) = 'D'
SET FORM TO SCRE
STOR -23 TO F
ELSE
STOR ' ' TO PR
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
STOR 0 TO F
SET FORM TO PRIN
ENDI
@ 0,0 SAY 'Record #'
@ 0,10 SAY #
@ 1,0 SAY 'Category'
IF TYPE = 1
@ 1,10 SAY '1 Appetizers'
ENDI
IF TYPE = 2
@ 1,10 SAY '2 Salads'
ENDI
IF TYPE = 3
@ 1,10 SAY '3 Main Dishes'
ENDI
IF TYPE = 4
@ 1,10 SAY '4 Vegetable Dishes'
ENDI
IF TYPE = 5
@ 1,10 SAY '5 Breads'
ENDI
IF TYPE = 6
@ 1,10 SAY '6 Desserts'
ENDI
IF TYPE = 7
@ 1,10 SAY '7 Cookies'
ENDI
@ 2,0 SAY 'Name'
@ 2,10 SAY NAME
@ 3,0 SAY 'Remarks'
@ 3,10 SAY REMARKS
@ 5,0 SAY 'Ingredients'
@ 7,A+6 SAY ITEM1
@ 8,A+6 SAY ITEM2
@ 9,A+6 SAY ITEM3
@ 10,A+6 SAY ITEM4
@ 11,A+6 SAY ITEM5
@ 12,A+6 SAY ITEM6
@ 13,A+6 SAY ITEM7
@ 14,A+6 SAY ITEM8
@ 15,A+6 SAY ITEM9
@ 16,A+6 SAY ITEM10
@ 17,A+6 SAY ITEM11
@ 18,A+6 SAY ITEM12
@ 19,A+6 SAY ITEM13
@ 20,A+6 SAY ITEM14
@ 21,A+6 SAY ITEM15
IF !(O)='D'
@ 23,0 SAY PRC GET PR
READ
ERAS
ENDI
@ F+23,0 SAY 'Instructions'
@ F+25,A+6 SAY INSTRUCT1
@ F+26,A+6 SAY INSTRUCT2
@ F+27,A+6 SAY INSTRUCT3
@ F+28,A+6 SAY INSTRUCT4
@ F+29,A+6 SAY INSTRUCT5
@ F+30,A+6 SAY INSTRUCT6
@ F+31,A+6 SAY INSTRUCT7
@ F+32,A+6 SAY INSTRUCT8
@ F+33,A+6 SAY INSTRUCT9
@ F+34,A+6 SAY INSTRUCT10
@ F+36,0 SAY 'Preparation Time'
@ F+37,0 SAY '(Minutes)'
@ F+37,11 SAY PREPTIME
@ F+39,0 SAY 'Serving Hints'
@ F+40,A+6 SAY HINT1
@ F+41,A+6 SAY HINT2
IF !(O)='D'
IF SHOP='Y'
@ 23,0 SAY PRO GET PRA
ELSE
@ 23,0 SAY PRC GET PR
ENDI
READ
STOR ' ' TO PR
ENDI
IF !(O)='P'
EJECT
SET FORM TO SCRE
IF SHOP='Y'
ERAS
@ 12,A+9 SAY PRO GET PRA
READ
ENDI
ERAS
ENDI
IF !(SHOP)='Y'.AND.!(PRA)='Y'
SELE SECO
APPE BLANK
REPL S.NAME WITH P.NAME
REPL S.ITEM1 WITH P.ITEM1
REPL S.ITEM2 WITH P.ITEM2
REPL S.ITEM3 WITH P.ITEM3
REPL S.ITEM4 WITH P.ITEM4
REPL S.ITEM5 WITH P.ITEM5
REPL S.ITEM6 WITH P.ITEM6
REPL S.ITEM7 WITH P.ITEM7
REPL S.ITEM8 WITH P.ITEM8
REPL S.ITEM9 WITH P.ITEM9
REPL S.ITEM10 WITH P.ITEM10
REPL S.ITEM11 WITH P.ITEM11
REPL S.ITEM12 WITH P.ITEM12
REPL S.ITEM13 WITH P.ITEM13
REPL S.ITEM14 WITH P.ITEM14
REPL S.ITEM15 WITH P.ITEM15
SELE PRIM
ENDI
ENDI
ENDI
SKIP
STOR I+1 TO I
STOR 'Y' TO CS
IF HIT=1
ERAS
STOR 0 TO HIT
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND.!(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
LOOP
ELSE
STOR 1 TO O1
LOOP
ENDI
ENDD
ENDI
IF !(CS)='N'
STOR '0' TO T
STOR 'N' TO C
ENDI
ENDD
STOR 1 TO I
IF T<>'0'
IF T<>' '.AND.TYPE<>VAL(T)
ERAS
@ 12,A+13 SAY ENDS
@ 13,A+13 SAY PRC GET PR
READ
STOR 'N' TO C
STOR ' ' TO PR
ERAS
ELSE
IF EOF
ERAS
@ 12,A+13 SAY END
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
STOR 'N' TO C
ENDI
ENDI
ENDI
ENDD
ENDD
ENDI
IF D='4'
STOR 0 TO M7
DO WHILE M7=0
ERAS
@ 1,A+11 SAY 'Recipe Selection by Category'
@ 2,A+16 SAY '& Preparation Time'
@ 4,A+10 SAY 'microGOURMET Recipe Categories'
@ 6,A+18 SAY '1 Appetizers'
@ 7,A+18 SAY '2 Salads'
@ 8,A+18 SAY '3 Main Dishes'
@ 9,A+18 SAY '4 Vegetable Dishes'
@ 10,A+18 SAY '5 Breads'
@ 11,A+18 SAY '6 Desserts'
@ 12,A+18 SAY '7 Cookies'
@ 14,A+10 SAY 'Enter the number of your choice ' GET T
@ 15,A+10 SAY ' or enter 0 for previous menu'
@ 17,A+10 SAY CLB
READ
IF (T<'0'.OR.T>'7').AND.T<>' '
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF T='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M7
LOOP
ENDI
IF T<>' '
FIND &T
STOR ' ' TO K
IF #=0
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
READ
STOR ' ' TO K
LOOP
ENDI
ELSE
GOTO TOP
ENDI
ERAS
STOR ' ' TO PREP
@ 12,A+10 SAY 'Maximum Preparation Time? ' GET PREP
@ 13,A+17 SAY '(in minutes)'
@ 15,A+11 SAY 'Recipes will be found which'
@ 16,A+11 SAY ' do not exceed this time'
READ
STORE VAL(PREP) TO PTIME
ERAS
ERAS
STOR 'Y' TO C
STOR 0 TO HIT
DO WHILE !(C)='Y'
STOR 1 TO I
DO WHILE I<21.AND.(TYPE=VAL(T).OR.T=' ').AND..NOT.EOF
IF PREPTIME <= PTIME
@ I,0 SAY STR(#,3)
@ I,4 SAY NAME
@ I,34 SAY PREPTIME
@ I,37 SAY 'min'
STOR 1 TO HIT
STOR I+1 TO I
ENDI
SKIP
ENDD
IF T<>' '.AND.TYPE<>VAL(T).AND.HIT=0
ERAS
@ 12,A+13 SAY ENDS
@ 13,A+13 SAY PRC GET PR
READ
STOR 'N' TO C
STOR ' ' TO PR
ERAS
ELSE
STOR 1 TO I
STOR 0 TO K1
IF HIT=1
@ 22,0 SAY SNC GET K1
@ 23,0 SAY PRC
ELSE
ERAS
@ 12,A+13 SAY NF GET K
@ 13,A+13 SAY PRC
ENDI
READ
IF K1=0
IF HIT=1
ERAS
STOR 'Y' TO CS
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND !(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
ERAS
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO O1
ENDI
ENDD
IF !(CS)='N'
STOR 'N' TO C
ENDI
ENDI
ELSE
SET INDEX TO &RINDEX
STOR 0 TO Z
DO WHILE Z=0
STOR STR(K1,5) TO K2
FIND &K2
IF #=0
@ 21,0 SAY 'Recipe Not Found'
@ 22,0 SAY 'Select a number ' GET K1
@ 23,0 SAY ' '
READ
LOOP
ELSE
STOR 1 TO Z
LOOP
ENDI
ENDD
STOR 'Y' TO PRA
ERAS
IF !(O) = 'D'
SET FORM TO SCRE
STOR -23 TO F
ELSE
STOR ' ' TO PR
@ 12,A+12 SAY 'Ready Printer, Press enter' GET PR
READ
STOR ' ' TO PR
STOR 0 TO F
SET FORM TO PRIN
ENDI
@ 0,0 SAY 'Record #'
@ 0,10 SAY #
@ 1,0 SAY 'Category'
IF TYPE = 1
@ 1,10 SAY '1 Appetizers'
ENDI
IF TYPE = 2
@ 1,10 SAY '2 Salads'
ENDI
IF TYPE = 3
@ 1,10 SAY '3 Main Dishes'
ENDI
IF TYPE = 4
@ 1,10 SAY '4 Vegetable Dishes'
ENDI
IF TYPE = 5
@ 1,10 SAY '5 Breads'
ENDI
IF TYPE = 6
@ 1,10 SAY '6 Desserts'
ENDI
IF TYPE = 7
@ 1,10 SAY '7 Cookies'
ENDI
@ 2,0 SAY 'Name'
@ 2,10 SAY NAME
@ 3,0 SAY 'Remarks'
@ 3,10 SAY REMARKS
@ 5,0 SAY 'Ingredients'
@ 7,A+6 SAY ITEM1
@ 8,A+6 SAY ITEM2
@ 9,A+6 SAY ITEM3
@ 10,A+6 SAY ITEM4
@ 11,A+6 SAY ITEM5
@ 12,A+6 SAY ITEM6
@ 13,A+6 SAY ITEM7
@ 14,A+6 SAY ITEM8
@ 15,A+6 SAY ITEM9
@ 16,A+6 SAY ITEM10
@ 17,A+6 SAY ITEM11
@ 18,A+6 SAY ITEM12
@ 19,A+6 SAY ITEM13
@ 20,A+6 SAY ITEM14
@ 21,A+6 SAY ITEM15
IF !(O)='D'
@ 23,0 SAY PRC GET PR
READ
ERAS
ENDI
@ F+23,0 SAY 'Instructions'
@ F+25,A+6 SAY INSTRUCT1
@ F+26,A+6 SAY INSTRUCT2
@ F+27,A+6 SAY INSTRUCT3
@ F+28,A+6 SAY INSTRUCT4
@ F+29,A+6 SAY INSTRUCT5
@ F+30,A+6 SAY INSTRUCT6
@ F+31,A+6 SAY INSTRUCT7
@ F+32,A+6 SAY INSTRUCT8
@ F+33,A+6 SAY INSTRUCT9
@ F+34,A+6 SAY INSTRUCT10
@ F+36,0 SAY 'Preparation Time'
@ F+37,0 SAY '(Minutes)'
@ F+37,11 SAY PREPTIME
@ F+39,0 SAY 'Serving Hints'
@ F+40,A+6 SAY HINT1
@ F+41,A+6 SAY HINT2
IF !(O)='D'
IF SHOP='Y'
@ 23,0 SAY PRO GET PRA
ELSE
@ 23,0 SAY PRC GET PR
ENDI
READ
STOR ' ' TO PR
ENDI
IF !(O)='P'
EJECT
SET FORM TO SCRE
IF SHOP='Y'
ERAS
@ 12,A+9 SAY PRO GET PRA
READ
ENDI
ENDI
ERAS
IF !(SHOP)='Y'.AND.!(PRA)='Y'
SELE SECO
APPE BLANK
REPL S.NAME WITH P.NAME
REPL S.ITEM1 WITH P.ITEM1
REPL S.ITEM2 WITH P.ITEM2
REPL S.ITEM3 WITH P.ITEM3
REPL S.ITEM4 WITH P.ITEM4
REPL S.ITEM5 WITH P.ITEM5
REPL S.ITEM6 WITH P.ITEM6
REPL S.ITEM7 WITH P.ITEM7
REPL S.ITEM8 WITH P.ITEM8
REPL S.ITEM9 WITH P.ITEM9
REPL S.ITEM10 WITH P.ITEM10
REPL S.ITEM11 WITH P.ITEM11
REPL S.ITEM12 WITH P.ITEM12
REPL S.ITEM13 WITH P.ITEM13
REPL S.ITEM14 WITH P.ITEM14
REPL S.ITEM15 WITH P.ITEM15
SELE PRIM
ENDI
SET INDEX TO &TINDEX
STOR 'Y' TO CS
STOR 0 TO O1
DO WHILE O1=0
ERAS
@ 12,A+15 SAY 'Continue Searching? ' GET CS
@ 13,A+15 SAY ' (Y or N)'
READ
ERAS
IF !(CS)<>'N'.AND !(CS)<>'Y'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
ERAS
STOR ' ' TO PR
LOOP
ELSE
STOR 1 TO O1
ENDI
ENDD
IF !(CS)='N'
STOR 'N' TO C
ELSE
IF T<>' '
FIND &T
ELSE
GOTO TOP
ENDI
ENDI
ENDI
IF EOF.AND.HIT=1
ERAS
@ 12,A+13 SAY END
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
STOR 'N' TO C
ENDI
IF HIT=0
STOR 'N' TO C
ENDI
STOR 0 TO HIT
ENDI
ENDD
ENDD
ENDI
ENDD
CASE M='3'
STOR 0 TO M4
DO WHILE M4=0
ERAS
@ 3,A+15 SAY 'microGOURMET Data Base'
@ 4,A+18 SAY 'Maintenance Menu'
@ 6,A+17 SAY '1 Add Recipe(s)'
@ 7,A+17 SAY '2 Change Recipe(s)'
@ 8,A+17 SAY '3 Delete Recipe(s)'
@ 9,A+17 SAY '4 Update Ingredient Index'
@ 10,A+17 SAY '5 Create Ingredient Index'
@ 11,A+17 SAY '6 Create Record Index'
@ 12,A+17 SAY '7 Create Category Index'
@ 14,A+10 SAY 'Enter the number of your choice ' GET FM
@ 15,A+10 SAY ' or enter ? for help'
@ 16,A+10 SAY ' or enter 0 for previous menu'
READ
IF (FM<'0'.OR.FM>'7').AND.FM<>'?'
ERAS
@ 12,A+19 SAY INV
@ 13,A+13 SAY PRC GET PR
READ
STOR ' ' TO PR
LOOP
ENDI
IF FM='?'
ERAS
@ 1,A+6 SAY ' microGOURMET Help'
@ 2,A+6 SAY 'Options 1 to 3 maintain the data base.'
@ 3,A+6 SAY 'You can add, change or delete recipes.'
@ 4,A+6 SAY 'dBASE II commands APPEND and EDIT are'
@ 5,A+6 SAY 'are used here. You should be familiar'
@ 6,A+6 SAY 'with them before proceeding. You should'
@ 7,A+6 SAY 'also make sure to install dBASE II so'
@ 8,A+6 SAY 'that the number of columns matches the'
@ 9,A+6 SAY 'number which you have on the screen.'
@ 11,A+6 SAY 'Options 4 and 5 will update or create a'
@ 12,A+6 SAY 'the ingredient index. Use option 4 if'
@ 13,A+6 SAY 'you add recipes or change ingredients.'
@ 14,A+6 SAY 'Use option 5 after deleting recipes or'
@ 15,A+6 SAY 'ingredients. Use them sparingly, because'
@ 16,A+6 SAY 'they could take an hour or more to do.'
@ 18,A+6 SAY 'Use option 6 after adding recipes, and'
@ 19,A+6 SAY 'Option 7 only if you suspect problems.'
@ 21,A+6 SAY 'Details of using these functions are in'
@ 22,A+6 SAY 'the manual under Data Base Maintenance.'
@ 23,A+6 SAY PRC GET PR
READ
STOR ' ' TO PR
ERAS
LOOP
ENDI
IF FM='0'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
STOR 1 TO M4
LOOP
ENDI
IF FM='1'
STOR 'Y' TO ADR
ERAS
@ 11,A+9 SAY 'You must have space on the disk'
@ 12,A+9 SAY 'drive which has the recipes on it'
@ 14,A+9 SAY 'Do you want to continue? ' GET ADR
READ
IF !(ADR)='N'
LOOP
ELSE
SET COLON ON
SET BELL ON
APPE
SET COLON OFF
SET BELL OFF
LOOP
ENDI
ENDI
IF FM='2'
SET COLON ON
SET BELL ON
ERAS
EDIT
SET COLON OFF
SET BELL OFF
LOOP
ENDI
IF FM='3'
SET COLON ON
SET BELL ON
ERAS
@ 1,0 SAY 'Press control-U to delete a record'
@ 2,0 SAY '(after entering the record number)'
@ 3,0 SAY ' '
EDIT
SET COLON OFF
SET BELL OFF
STOR 'N' TO DER
ERAS
@ 11,A+8 SAY 'Delete the record(s) permanently? ' GET DER
@ 12,A+21 SAY '(Y or N)'
READ
IF !(DER)='Y'
ERAS
@ 11,A+9 SAY 'Please wait while the'
@ 12,A+9 SAY 'data base is updated'
PACK
ENDI
ENDI
IF FM='4'.OR.FM='5'
STOR 'Y' TO ADR
ERAS
@ 11,A+10 SAY 'This process takes about an hour'
@ 12,A+10 SAY ' Do you want to continue? ' GET ADR
READ
IF !(ADR)='N'
LOOP
ENDI
SET EXACT ON
IF FM='4'
STOR 2 TO INGRED
ENDI
IF FM='5'
STOR 3 TO INGRED
ENDI
IF INGRED=3
ERAS
@ 12,A+10 SAY 'Re-creating ingredient index...'
USE &FITEM
COPY STRU TO INGREDNT
USE INGREDNT
DELE FILE &FITEM
DELE FILE &NITEM
INDEX ON ITEM TO &NITEM
USE &DGOURMET
SELE SECO
USE INGREDNT INDEX &NITEM
SELE PRIM
ELSE
ERAS
@ 12,A+12 SAY 'Updating ingredient index...'
USE &DGOURMET
SELE SECO
USE &FITEM INDEX &NITEM
SELE PRIM
ENDI
STOR 1 TO N
STOR 25 TO COLLEN
DO WHILE .NOT.EOF
@ 13,A+14 SAY 'Reading Recipe Record'
@ 13,A+35 SAY #
DO WHILE N<=15
IF N=1
STOR $(ITEM1,1,COLLEN) TO I
ENDI
IF N=2
STOR $(ITEM2,1,COLLEN) TO I
ENDI
IF N=3
STOR $(ITEM3,1,COLLEN) TO I
ENDI
IF N=4
STOR $(ITEM4,1,COLLEN) TO I
ENDI
IF N=5
STOR $(ITEM5,1,COLLEN) TO I
ENDI
IF N=6
STOR $(ITEM6,1,COLLEN) TO I
ENDI
IF N=7
STOR $(ITEM7,1,COLLEN) TO I
ENDI
IF N=8
STOR $(ITEM8,1,COLLEN) TO I
ENDI
IF N=9
STOR $(ITEM9,1,COLLEN) TO I
ENDI
IF N=10
STOR $(ITEM10,1,COLLEN) TO I
ENDI
IF N=11
STOR $(ITEM11,1,COLLEN) TO I
ENDI
IF N=12
STOR $(ITEM12,1,COLLEN) TO I
ENDI
IF N=13
STOR $(ITEM13,1,COLLEN) TO I
ENDI
IF N=14
STOR $(ITEM14,1,COLLEN) TO I
ENDI
IF N=15
STOR $(ITEM15,1,COLLEN) TO I
ENDI
IF $(I,1,1)<>' '
STOR 1 TO J
DO WHILE J<=COLLEN
STOR $(I,J,1) TO K
IF K=','.OR.K='.'.OR.((K<'a'.OR.K>'z').AND.(K<'A'.OR.K>'Z').AND.K<>' '.AND.K<>'&'.AND.K<>'-'.AND.K<>"'")
IF $(I,1,(J-2))=' '
STOR $(I,1,(J-2)) TO I
ELSE
STOR $(I,1,(J-1)) TO I
ENDI
STOR COLLEN+1 TO J
ENDI
STOR J+1 TO J
ENDD
SELE SECO
FIND &I
IF #=0
APPE BLANK
REPL ITEM WITH I
@ 14,A+10 SAY 'Writing Ingredient Record'
@ 14,A+35 SAY #
ENDI
ENDI
STOR N+1 TO N
ENDD
SELE PRIM
SKIP
STOR 1 TO N
ENDD
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
SET EXACT OFF
IF INGRED=3
RENA INGREDNT.DBF TO &FITEM
ENDI
ENDI
ENDI
ENDI
IF FM='6'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
USE &FSHOP
DELE FILE &RINDEX
USE &DGOURMET
INDEX ON # TO &RINDEX
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
ENDI
IF FM='7'
ERAS
@ 12,A+16 SAY 'One Moment Please...'
USE &FSHOP
DELE FILE &TINDEX
USE &DGOURMET
INDEX ON TYPE TO &TINDEX
USE &DGOURMET INDEX &TINDEX,&RINDEX
SELE SECO
USE &FSHOP
SELE PRIM
ENDI
ENDD
ENDC
ENDD